using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;
using SMWJamecl.BusinessEntities;

namespace SMWJamecl.Repository.Mapping
{
    public class ClienteMap : EntityTypeConfiguration<Cliente>
    {
        public ClienteMap()
        {
            // Primary Key
            this.HasKey(t => t.Id_Cliente);

            // Properties
            this.Property(t => t.Id_Cliente)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.ruc_dni)
                .HasMaxLength(11);

            this.Property(t => t.razSoc_Nomrbres)
                .HasMaxLength(50);

            this.Property(t => t.Telefono)
                .IsFixedLength()
                .HasMaxLength(10);

            this.Property(t => t.Direccion)
                .IsFixedLength()
                .HasMaxLength(10);

            this.Property(t => t.Contacto)
                .IsFixedLength()
                .HasMaxLength(10);

            this.Property(t => t.CelContacto)
                .IsFixedLength()
                .HasMaxLength(10);

            // Table & Column Mappings
            this.ToTable("Cliente");
            this.Property(t => t.Id_Cliente).HasColumnName("Id_Cliente");
            this.Property(t => t.Fecha_Ingreso).HasColumnName("Fecha_Ingreso");
            this.Property(t => t.ruc_dni).HasColumnName("ruc_dni");
            this.Property(t => t.razSoc_Nomrbres).HasColumnName("razSoc_Nomrbres");
            this.Property(t => t.Telefono).HasColumnName("Telefono");
            this.Property(t => t.Direccion).HasColumnName("Direccion");
            this.Property(t => t.Contacto).HasColumnName("Contacto");
            this.Property(t => t.CelContacto).HasColumnName("CelContacto");
        }
    }
}
